home *** CD-ROM | disk | FTP | other *** search
- FAXX (IFF facsimile FORM)
-
- IFF FORM / CHUNK DESCRIPTION
- ============================
-
- Form/Chunk IDs:
- FORM: FAXX
- Chunks: FXHD, PAGE, FLOG
-
- Date Submitted: 07/19/92
- Submitted by: Christopher E. Darsch - Atlantis Design Group, Inc.
- Revision: 1.1
-
-
- FXHD Chunk
- ==========
-
- The required property chunk "FXHD" contains a FaxHeader as defined in
- the following header file. The FaxHeader contains data necessary to interpret
- the data chunk "PAGE". The pixel size of the image can be determined from the
- contents of the FaxHeader structure, as well as the dimensions of the source
- document. The compression method used to encode the "PAGE" chunk is also part
- of the FaxHeader.
-
- PAGE Chunk
- ==========
-
- The required data chunk "PAGE" contains the encoded bit-packed fax image
- data that is transmitted/received during phase C of a facsimile communication.
- The specifications for this data are contained in the CCITT Blue Book, Volume
- VII, Fascicle VII.3, Recommendation T.4. The valid data begins with a fax EOL
- (End of line = 0b000000000001) and ends with a fax RTC (Return to control =
- six consecutive EOLs). A variable number of zero bits may precede and/or
- follow the valid data. This increases the efficiency of storing received fax
- data by eliminating the need for bit shifting. Note, therefore, that the
- leading EOL and the trailing RTC may not be byte-aligned.
-
- A multiple-page fax can be stored variously as multiple files, an IFF CAT
- object, or, most preferably, an IFF LIST object with a shared FXHD chunk.
-
- FLOG Chunk
- ==========
-
- The optional data chunk "FLOG" contains log information about a received
- fax. The specification for this chunk will be submitted at a later date.
-
- /***************************************************************************/
- /* FaxxIFF.h */
- /***************************************************************************/
-
- #define ID_FAXX MakeID('F','A','X','X')
- #define ID_FXHD MakeID('F','X','H','D')
- #define ID_PAGE MakeID('P','A','G','E')
- #define ID_FLOG MakeID('F','L','O','G')
-
- /* LineLength Codes */
-
- #define FXLNGSTD 215 /* 1728 pixels along std line lng of 215mm */
- #define FXLNGLONG 255 /* 2048 pixels along opt line lng of 255mm */
- #define FXLNGLONGER 303 /* 2432 pixels along opt line lng of 303mm */
- #define FXLNGA5 151 /* 1216/1728 pixels along opt line lng of 151mm */
- #define FXLNGA6 107 /* 864/1728 pixels along opt line lng of 107mm */
-
- /* VRes Codes */
-
- #define FXVRESNORM 385 /* Normal resolution: 3.85 lines/mm */
- #define FXVRESFINE 770 /* Fine resolution: 7.7 lines/mm */
-
- /* Compression Codes */
- /* Codes 129, 130, and 131 are reserved */
-
- #define FXCMPNONE 0 /* No compression -- available under Group IV */
- #define FXCMPMH 1 /* One-dimensional (MH) coding */
- #define FXCMPMR 2 /* Two-dimensional (MR) coding */
- #define FXCMPMMR 4 /* Modified Two-dimensional (MMR) coding */
-
- typedef struct {
- UWORD Width, Height; /* Image width and height, in pixels */
- UWORD LineLength; /* Scan line length, in millimeters */
- UWORD VRes; /* Vertical Resolution, in lines/100mm */
- UBYTE Compression; /* Compression method */
- UBYTE Pad[11]; /* Room for expansion */
- } FaxHeader;
-